草庐IT

PHP REST API 路由

全部标签

http - 将 URL 路径与页面名称与 Go 中的 URL 路由匹配的正确方法?

我正在制作一个Go网站(小型服务),但不知道如何页面URL被验证为正确或未找到404。最终我了解到存在http请求路由器/多路复用器。例子:eg.com/articles/animals/Hippos-are-aquatic-and-land-dwelling=gotopageeg.com/articles/animals/Hippos-are-typofrifjirj=404notfoundpage现在我只看到一种方法可以做到这一点,您可以通过某种方式获得网站上的文章列表,然后以某种方式将其传递到路由器中。您应该如何获得该文章列表?对于动态关系数据库站点:您是否在数据库中查询文章标题

go - 水牛中的反向路由

是否有可能使用反向路由器,例如类似于Play框架?这有助于避免在app.go之外对URL进行硬编码。 最佳答案 在app.go中使用Name()来定义路由的名称(如在mux中)。例如:auth.GET("/{provider}",bah).Name("login")但是,buffalo会向其附加“路径”并使其可用loginPath({key:value})例如:">login 关于go-水牛中的反向路由,我们在StackOverflow上找到一个类似的问题:

api - beego评论路由器

我是Beego框架的新手。我有使用LaravelPHP框架的经验,我认为Beego有点不同。这些commentsRou​​ter是如何生成的,这是做什么用的?这是自动生成的还是只需要我手动添加并定义路由方法? 最佳答案 是的,commentsRou​​ter_controller.go是自动生成的。例子:在ControllerUser.go中//@router/get-admin-user[获取]func(c*UserController)GetAdminUser(){}在comments中Router_controller.go会

go - 如何在 go 中测试验证 JWT 路由

我想在JWT身份验证中测试protected路由。已经尝试接收响应并尝试传递token,但它只返回401作为代码响应。packageroutesimport("fmt""github.com/stretchr/testify/assert""net/http""net/http/httptest""testing")funcperformRequest(rhttp.Handler,method,pathstring,t*testing.T)*httptest.ResponseRecorder{token:="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ey

json - 如何在 Gin 路由器中呈现静态文件?

我想用gin服务器提供一个JSON文件。并在HTML文件中设置一些自定义值。在其中使用JavaScript调用JSON文件。我的应用程序结构:.├──main.go└──templates├──index.html└──web.json我将这些基本源代码放入main.go文件中:packagemainimport("net/http""github.com/gin-gonic/gin")varrouter*gin.Enginefuncmain(){router=gin.Default()router.LoadHTMLGlob("templates/*")router.GET("/web

redirect - 重定向太多,但通过什么路由?

我有一个基于goquery的简单网络抓取工具/蜘蛛,它又使用net/http。效果很好,直到我访问了一个重定向过多的网站。Gethttp://www.example.com/some/path.html:stoppedafter10redirects但是为什么?它是否重定向到自身?它把我扔进了蜘蛛jail吗?我想知道我被重定向到什么url,以及以什么顺序。给出错误的函数似乎知道这一点,因为它正在检查一段请求的长度,但我真的不想自己编辑net/http包。这是来自http://golang.org/src/pkg/net/http/client.go的函数funcdefaultCheck

go - 路由器中的过滤模式

对于每个用户,Beegoapp在/static/users/下创建一个目录,格式为:/static/users/USER_ID/private和/static/users/USER_ID/public,其中USER_ID是每个用户的ID。我想保护私有(private)文件,以便只有拥有它们的用户才能使用过滤器进行访问。路由器中的模式如下:beego.InsertFilter("/static/users/:userId([0-9]+)/private/*",beego.BeforeRouter,controllers.ProtectPrivateUploads)过滤函数如下:varPr

go - 如何在 Gorilla mux 路由中获取 OR 模式

我正在尝试使用Gorillamux路由器来处理响应URL中有限字符串列表的路径。我正在开发的服务将从调用者那里获取文件,并通过“适配器”将它们传送到S3或OneDrive,具体取决于URL中指定的“适配器”。我还需要一个名为“schema”的变量,我现在只提到它是因为接下来会很奇怪。我的测试如下({schema}将设置为“test”):router.HandleFunc("/{adapter:(s3|onedrive)}/{schema:[a-z]+}/check",func(whttp.ResponseWriter,r*http.Request){w.Write([]byte(fmt

model-view-controller - 路由器找不到 Controller Beego

我有一个正在运行的beego应用程序,然后我的路由器停止寻找Controller,我不知道为什么。无论我输入什么url,路由器都不会指向提示nomatch的Controller2016/07/2617:24:50[router.go:829][D]|GET|/|478.352µs|notmatch|app.confappname=exampleapphttpport=8080runmode=devrouter.gopackageroutersimport("github.com/astaxie/beego""example/controllers")funcinit(){beego.R

golang gorilla/mux 和测试,在哪里存储路由

在我看过的大多数文档中,gorillamux都被建议像这样使用...funcmain(){m:=mux.Router()m.HandleFunc("/",FuncNameOrDef)http.ListenAndServe(":8080",m)}这很好,但它给我留下了一个问题,因为据我所知,为了测试,我需要重新声明mux和路由,除非我在像这样的函数之外声明mux和路由。.var(m=mux.Router()_=m.HandleFunc("/",FuncNameOrDef))然后在我的测试中这样做...funcTestSomeView(t*testing.T){ts:=httptest.N